<?php
/**
 * 示例model（标注表的作用）
 * panglishan
 * 2020.08.13
 */
namespace App\Models\MainDB;

use Illuminate\Database\Eloquent\Model;

class UserRoom extends Model{

    protected $connection = 'mysql';

    protected $table = 'ln_user_room';     //数据库内完整表名

    protected $primaryKey = 'id';    //主键名

    protected $fillable = [
        'id',      //主键ID
        'room_id',         //房间id
        'user_id',     //用户id
        'room_name',     //房间名称
        'password',     //房间密码
        'label_id',     //标签
        'type_id',     //分类
        'add_time',     //创建时间
        'update_time',     //修改时间
        'wheat',     //1.自由上麦  2.申请上麦
        'playing',     //玩法
        'greeting',     //欢迎语
        'cover_picture',     //封面图片
        'even_wheat',     //是否在麦上1.是  0.否
        'voice',     //开麦状态 1.开 0.否
        'on_line',     //1.是  0.否
        'chatrooms',     //聊天室
        'sys_type_id',     //官方系统
        'earnings',     //收益
        'popularity',     //人气
        'cardiac',     //心动值开关  1.开  2.关
        'water_ratio',     //房间流水百分比
        'hot_sort',     //热门排序
        'seal_time',     //封禁时间
        'bg_picture',     //背景图片
        'state',     //状态1显示0隐藏
        'holder',     //主持人id
        'show_ball_game',     //是否显示球球游戏0否1是
        'step',     //相亲房已进行到第几步
        'star_state',     //是否参与周星榜0不参与1参与
        'hot_model',     //热门房间模式 0普通模式  1置顶模式 2轮播模式
        'special_flag_big',     //特殊标记如周星房间、活动房间等
        'special_flag_small',     //特殊标记如周星房间、活动房间等
    ];

    public $timestamps = false;


    public function scopeWithOnly($query, $relation, Array $columns)
    {
        return $query->with([$relation => function ($query) use ($columns){
            $query->select($columns);
        }]);
    }

    //关联sound_effect模型
    public function sound_effect()
    {
        return $this->hasOne('App\Models\MainDB\RoomSoundEffect', 'id', 'sound_effect_id');
    }

    //关联user_data模型
    public function user_data()
    {
        return $this->hasOne('App\Models\MainDB\UserData', 'user_id', 'user_id');
    }

    //关联user模型
    public function user()
    {
        return $this->hasOne('App\Models\MainDB\User', 'user_id', 'user_id');
    }

    //关联room_label模型
    public function room_label()
    {
        return $this->hasOne('App\Models\MainDB\RoomLabel', 'id', 'label_id');
    }

    //关联room_type模型
    public function room_type()
    {
        return $this->hasOne('App\Models\MainDB\RoomType', 'id', 'sys_type_id');
    }

    //关联room_type模型
    public function room_type_user()
    {
        return $this->hasOne('App\Models\MainDB\RoomType', 'id', 'type_id');
    }
}